package klk.shop.z.kev.tools;

import java.util.Date;
import java.util.GregorianCalendar;

public class Datum {

	public GregorianCalendar gc = new GregorianCalendar();
	
	public int getTag() 			{ return gc.get( GregorianCalendar.DATE );			}
	public int getMonat() 			{ return gc.get( GregorianCalendar.MONTH )+1; 		}	
	public int getJahr() 			{ return gc.get( GregorianCalendar.YEAR ); 			}	
	public int getStunde() 			{ return gc.get( GregorianCalendar.HOUR_OF_DAY ); 	}	
	public int getMinute() 			{ return gc.get( GregorianCalendar.MINUTE );		}	
	public int getSekunde() 		{ return gc.get( GregorianCalendar.SECOND );		}	
	public String getWochenTag() 	{
		
		switch( gc.get( GregorianCalendar.DAY_OF_WEEK ) ) {
			case( GregorianCalendar.SUNDAY ):		return "Sonntag"; 
			case( GregorianCalendar.MONDAY ):		return "Montag"; 
			case( GregorianCalendar.TUESDAY ):		return "Dienstag"; 
			case( GregorianCalendar.WEDNESDAY ):	return "Mittwoch"; 
			case( GregorianCalendar.THURSDAY ):		return "Donnerstag"; 
			case( GregorianCalendar.FRIDAY ):		return "Freitag"; 
			case( GregorianCalendar.SATURDAY ):		return "Sonnabend"; 
		}
		return "";

	}	
	
	public void setTag(int tag) 					{ gc.set( GregorianCalendar.DATE , tag); 					}
	public void setMonat(int monat) 				{ gc.set( GregorianCalendar.MONTH , monat-1); 				}
	public void setJahr(int jahr) 					{ gc.set( GregorianCalendar.YEAR , jahr); 					}
	public void setStunde(int stunde) 				{ gc.set( GregorianCalendar.HOUR_OF_DAY , stunde); 			}
	public void setMinute(int minute) 				{ gc.set( GregorianCalendar.MINUTE , minute); 				}
	public void setSekunde(int sekunde) 			{ gc.set( GregorianCalendar.SECOND , sekunde); 				}
	public void setMillisekunde(int millisekunde) 	{ gc.set( GregorianCalendar.MILLISECOND , millisekunde); 	}
	public void setWochenTag(String wochenTag) 		{ 

		if ( wochenTag.equals("Sonntag") )
			gc.set( GregorianCalendar.DAY_OF_WEEK , GregorianCalendar.SUNDAY );
		else if ( wochenTag.equals("Montag") )
			gc.set( GregorianCalendar.DAY_OF_WEEK , GregorianCalendar.MONDAY );
		else if ( wochenTag.equals("Dienstag") )
			gc.set( GregorianCalendar.DAY_OF_WEEK , GregorianCalendar.TUESDAY );
		else if ( wochenTag.equals("Mittwoch") )
			gc.set( GregorianCalendar.DAY_OF_WEEK , GregorianCalendar.WEDNESDAY );
		else if ( wochenTag.equals("Donnerstag") )
			gc.set( GregorianCalendar.DAY_OF_WEEK , GregorianCalendar.THURSDAY );
		else if ( wochenTag.equals("Freitag") )
			gc.set( GregorianCalendar.DAY_OF_WEEK , GregorianCalendar.FRIDAY );
		else if ( wochenTag.equals("Samstag") || wochenTag.equals("Sonnabend") )
			gc.set( GregorianCalendar.DAY_OF_WEEK , GregorianCalendar.SATURDAY );
		
	}

	public String getDatumString() {
		return String.format( "%02d.%02d.%04d", getTag(), getMonat(), getJahr() );
	}
	public String getZeitString() {
		return String.format( "%02d:%02d:%02d", getStunde(), getMinute(), getSekunde() );
	}
	public String getZeitKurzString() {
		return String.format( "%02d:%02d", getStunde(), getMinute() );
	}
	@Override
	public String toString() {
		return getDatumString() + " " + getZeitString();
	}
	
	public Datum() {}
	public Datum(String text) {
		if ( text.equals("jetzt") )
			gc.setTime( new Date( System.currentTimeMillis() ) );
		gc.setTime( gc.getTime() );
	}
	public Datum(Date date) {
		gc.setTime( new Date( System.currentTimeMillis() ) );
		gc.setTime( gc.getTime() );
	}
	public Datum(int tag, int monat, int jahr) {
		gc.setTime( new Date( System.currentTimeMillis() ) );
		setTag(tag);
		setMonat(monat);
		setJahr(jahr);
	}
	public Datum(int stunde, int minute, int sekunde, int millisekunde) {
		gc.setTime( new Date( System.currentTimeMillis() ) );		
		setStunde(stunde);
		setMinute(minute);
		setSekunde(sekunde);
		setMillisekunde(millisekunde);
		
	}
	public Datum(int tag, int monat, int jahr, int stunde, int minute, int sekunde) {
		setTag(tag);
		setMonat(monat);
		setJahr(jahr);
		setStunde(stunde);
		setMinute(minute);
		setSekunde(sekunde);		
	}
	public Datum(int tag, int monat, int jahr, int stunde, int minute, int sekunde, int millisekunde) {
		setTag(tag);
		setMonat(monat);
		setJahr(jahr);
		setStunde(stunde);
		setMinute(minute);
		setSekunde(sekunde);
		setMillisekunde(millisekunde);		
	}
	
}
